#include "motor.h"

// #include "ti_msp_dl_config.h"

/**
 * @brief 	电机对应GPIO初始化
 * @param 	无
 * @retval  无
 */

/**
 * @brief 	左轮电机控制正反转
 * @param 	无
 * @retval  无
 */
void Motor_Left_DIR(MotorDIR_Choose Direction)
{
    if (BACK == Direction)
    {     
        DL_GPIO_setPins(GPIOB, GPIO_MOTOR_LIN1_PIN);
        DL_GPIO_clearPins(GPIOB, GPIO_MOTOR_LIN2_PIN);
    }
    else if (FORWARD == Direction)
    {
        DL_GPIO_clearPins(GPIOB, GPIO_MOTOR_LIN1_PIN);
        DL_GPIO_setPins(GPIOB, GPIO_MOTOR_LIN2_PIN);
    }
    else if (STOP == Direction)
    {
        DL_GPIO_setPins(GPIOB, GPIO_MOTOR_LIN1_PIN);
        DL_GPIO_setPins(GPIOB, GPIO_MOTOR_LIN2_PIN);
    }
}

/**
 * @brief 	右轮电机控制正反转
 * @param 	无
 * @retval  无
 */
void Motor_Right_DIR(MotorDIR_Choose Direction)
{
    if (FORWARD == Direction)
    {
        DL_GPIO_clearPins(GPIOB, GPIO_MOTOR_RIN1_PIN);
        DL_GPIO_setPins(GPIOB, GPIO_MOTOR_RIN2_PIN);
    }
    else if (BACK == Direction)
    {
        DL_GPIO_setPins(GPIOB, GPIO_MOTOR_RIN1_PIN);
        DL_GPIO_clearPins(GPIOB, GPIO_MOTOR_RIN2_PIN);
    }
    else if (STOP == Direction)

    {
        DL_GPIO_setPins(GPIOB, GPIO_MOTOR_RIN1_PIN);
        DL_GPIO_setPins(GPIOB, GPIO_MOTOR_RIN2_PIN);
    }
}

/**
 * @brief 	装载PWM值  
 * @param 	无
 * @retval  无
 */
void Load_Motor_Pwm(int32_t Motor1_PWM, int32_t Motor2_PWM)
{
    // 限幅
    Motor1_PWM = (Motor1_PWM > 0) ? Motor1_PWM : (-Motor1_PWM);
    Motor2_PWM = (Motor2_PWM > 0) ? Motor2_PWM : (-Motor2_PWM);

    Motor1_PWM = (Motor1_PWM > PWM_MAX) ? PWM_MAX : Motor1_PWM;
    Motor2_PWM = (Motor2_PWM > PWM_MAX) ? PWM_MAX : Motor2_PWM;

    DL_TimerG_setCaptureCompareValue(MOTOR_PWM_INST, Motor1_PWM ,DL_TIMER_CC_1_INDEX);//配置PWM波占空比，参数：PWM名_INST; 占空大小；PWM通道
    DL_TimerG_setCaptureCompareValue(MOTOR_PWM_INST, Motor2_PWM ,DL_TIMER_CC_0_INDEX);
}
